perm filename INFIX.LSP[BNF,JRA]1 blob
sn#005878 filedate 1973-03-14 generic text, type T, neo UTF8
(DEFPROP <PRED>
(LAMBDA NIL
(NLRR (QUOTE PRED)
(FUNCTION
(LAMBDA NIL
(COND ((AND (<PREPREDLET>) (<ITMLST>)) (CONS (STK 1) (STK 0)))
((AND (<TM>) (<INFPREDLET>) (<TM1>)) (CONS (STK 1) (CONS (STK 2) (CONS (STK 0) NIL))))
(*NIL*))))))
EXPR)
(DEFPROP <ITMLST>
(LAMBDA NIL (NLRR (QUOTE ITMLST) (FUNCTION (LAMBDA NIL (COND ((AND (CH /() (<ITMS>)) (STK 0)) (*NIL*))))))
EXPR)
(DEFPROP <ITMS>
(LAMBDA NIL
(NLRR (QUOTE ITMS)
(FUNCTION
(LAMBDA NIL
(COND ((AND (<TM2>) (<ITMS>)) (CONS (STK 1) (STK 0)))
((AND (<TM>) (CH /))) (CONS (STK 1) NIL))
(*NIL*))))))
EXPR)
(DEFPROP <TM>
(LAMBDA NIL
(LRR (QUOTE TM)
(FUNCTION
(LAMBDA NIL
(COND ((AND (<IVAR>)) (STK 0))
((AND (<PREFN>) (<ITMLST>)) (CONS (STK 1) (STK 0)))
((AND (<PREFN>)) (CONS (STK 0) NIL))
((AND (CH /() (<TM>) (CH /))) (STK 1))
(*NIL*))))
(FUNCTION
(LAMBDA (<*>) (COND ((AND (<INFN>) (<TM1>)) (CONS (STK 1) (CONS <*> (CONS (STK 0) NIL)))) (*NIL*))))))
EXPR)
(DEFPROP <TM1>
(LAMBDA NIL (NLRR (QUOTE TM1) (FUNCTION (LAMBDA NIL (COND ((AND (<TM>)) (STK 0)) (*NIL*))))))
EXPR)
(DEFPROP <TM2>
(LAMBDA NIL (NLRR (QUOTE TM2) (FUNCTION (LAMBDA NIL (COND ((AND (<TM>) (CH /,)) (STK 1)) (*NIL*))))))
EXPR)
(DEFPROP >PRED<
(LAMBDA(%N)
(OUTRUL %N
(FUNCTION
(LAMBDA NIL
(COND ((AND (MATCH (QUOTE (* . *))) (>PREPREDLET< 1) (>ITMLST< 0)) (LIST (STK1) (STK0)))
((AND (MATCH (QUOTE (* * *))) (>INFPREDLET< 2) (>TM< 1) (>TM1< 0))
(LIST (STK1) (STK2) (STK0))))))))
EXPR)
(DEFPROP >ITMLST<
(LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>ITMS< 1) (LIST (QUOTE (:CH /()) (STK1))))))))
EXPR)
(DEFPROP >ITMS<
(LAMBDA(%N)
(OUTRUL %N
(FUNCTION
(LAMBDA NIL
(COND ((AND (MATCH (QUOTE (*))) (>TM< 0)) (LIST (STK0) (QUOTE (:CH /)))))
((AND (MATCH (QUOTE (* . *))) (>TM2< 1) (>ITMS< 0)) (LIST (STK1) (STK0))))))))
EXPR)
(DEFPROP >TM<
(LAMBDA(%N)
(OUTRUL %N
(FUNCTION
(LAMBDA NIL
(COND ((>IVAR< 1) (STK1))
((AND (MATCH (QUOTE (*))) (>PREFN< 0)) (STK0))
((AND (MATCH (QUOTE (* * *))) (>INFN< 2) (>TM< 1) (>TM1< 0)) (LIST (STK1) (STK2) (STK0)))
((AND (MATCH (QUOTE (* . *))) (>PREFN< 1) (>ITMLST< 0)) (LIST (STK1) (STK0)))
((>TM< 1) (LIST (QUOTE (:CH /()) (STK1) (QUOTE (:CH /))))))))))
EXPR)
(DEFPROP >TM1<
(LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>TM< 1) (STK1)))))))
EXPR)
(DEFPROP >TM2<
(LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>TM< 1) (LIST (STK1) (QUOTE (:CH /,)))))))))
EXPR)